<Schema name="FdtFFChannelParameterSchema" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes" 
	xmlns:fdt="x-schema:FDTDataTypesSchema.xml"
	xmlns:fftypes="x-schema:FdtFFDataTypesSchema.xml"
	xmlns:appId="x-schema:FDTApplicationIdSchema.xml">
	
	<!--Definition of Attributes-->
	<AttributeType name="schemaVersion" dt:type="string" default="1.21"/>
	<AttributeType name="frameApplicationTag" dt:type="string"/>
	<AttributeType name="gatewayBusCategory" dt:type="uuid"/>
	<!-- dataTypes define the data type of the channel variable. The frame application can unpack the value using the coding rules according to the FF specification -->
	<AttributeType name="dataType" dt:type="enumeration" dt:values="Boolean Integer8 Integer16 Integer32 Unsigned8 Unsigned16 Unsigned32 FloatingPoint Visible String Octet String Date TimeofDay Time DifferenceBit  TimeValue  ValueStatusFloat ValueStatusDiscrete ValueStatusBitstring Scaling Mode AccessPermissions AlarmFloat AlarmDiscrete EventUpdate AlarmSummary AlertAnalog AlertDiscrete AlertUpdate TrendFloat TrendDiscrete TrendBitstring FBLink SimulateFloat SimulateDiscrete SimulateBitstring Test Action Custom other"/>
	<AttributeType name="invalidBit" dt:type="ui4"/>
	<AttributeType name="logic" dt:type="enumeration" dt:values="positive negative"/>
	<AttributeType name="number" dt:type="ui4"/>
	<AttributeType name="protectedByChannelAssignment" dt:type="boolean"/>
	<AttributeType name="simulationBit" dt:type="ui4"/>
	<AttributeType name="statusChannel" dt:type="boolean"/>
	<AttributeType name="substituteValueBit" dt:type="ui4"/>
	<AttributeType name="index" dt:type="ui4"/>
	<AttributeType name="subIndex" dt:type="ui4"/>

	<!--Definition of Elements-->
	<ElementType name="ParameterAddress" content="empty" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<attribute type="fftypes:communicationReference" required="yes"/>
		<attribute type="index" required="yes"/>
		<attribute type="subIndex" default="0" required="no"/>
	</ElementType>
	<ElementType name="FDTChannel" content="eltOnly" model="closed" order="seq">
		<attribute type="fdt:nodeId" required="no"/>
		<attribute type="fdt:tag" required="yes"/>
		<attribute type="fdt:id" required="yes"/>
	        	<attribute type="fdt:descriptor" required="no"/>     
		<attribute type="protectedByChannelAssignment" required="yes"/>
		<attribute type="number" required="yes"/>
		<attribute type="dataType" required="yes"/>
		<attribute type="fdt:signalType" required="yes"/>
		<attribute type="frameApplicationTag" required="no"/>
		<attribute type="appId:applicationId" required="no"/>        
		<attribute type="logic" default="positive" required="no"/>
		<element type="fdt:SemanticInformation" minOccurs="0" maxOccurs="*"/>
		<element type="fdt:BitEnumeratorEntries" minOccurs="0" maxOccurs="1"/>
		<element type="fdt:EnumeratorEntries" minOccurs="0" maxOccurs="1"/>
		<element type="fdt:Unit" minOccurs="0" maxOccurs="1"/>
		<element type="ParameterAddress" minOccurs="0" maxOccurs="1"/>
		<element type="fdt:Alarms" minOccurs="0" maxOccurs="1"/>
		<element type="fdt:Ranges" minOccurs="0" maxOccurs="1"/>
		<element type="fdt:Deadband" minOccurs="0" maxOccurs="1"/>	
		<element type="fdt:SubstituteValue" minOccurs="0" maxOccurs="1"/>
	</ElementType>
	<ElementType name="FDTChannelType" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<element type="fdt:VersionInformation" minOccurs="1" maxOccurs="1"/>
		<attribute type="gatewayBusCategory" required="no"/>
		<attribute type="statusChannel" required="no"/>
	</ElementType>
	<ElementType name="FDT" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<element type="FDTChannelType" minOccurs="0" maxOccurs="1"/>
		<element type="FDTChannel" minOccurs="0" maxOccurs="1"/>
	</ElementType>
</Schema>
